macro(InitializeBuildOptions)
    # ==============================================================================
    # =================   All the options for the build process    =================
    # ==============================================================================
    option(SG_USE_DEBUG "Enable debug checks" OFF)
    # option(SG_USE_SUPERLU "Build the linear solver using SuperLU" OFF)
    option(SG_USE_MPI "Enable MPI parallel build" OFF)
    option(SG_USE_CUDA "Enable CUDA parallel build" OFF)    
    option(SG_USE_PETSC "Build the linear solver using PETSc" OFF)
    option(SG_USE_MKL "Build the linear solver using oneMKL" OFF)
    option(SG_USE_ARPACK "Build the eigenvalue solver using ARPACK" OFF)
    option(SG_USE_HYPRE "enable the HYPRE." OFF)
    option(SG_BUILD_DOCUMENTATION "Create and install the HTML based API documentation (requires Doxygen)" OFF)
    option(SG_BUILD_UNIT_TEST "是否编译各模块单元测试" ON)
    option(SG_BUILD_DBManager "是否编译DBManager项目，为OFF时则使用Artifact目录内发布的库。" OFF)
    option(SG_LICENSE_CHECK "enable the license check." ON)
    option(SG_BUILD_BDFCardExtractor "enable the bdf card extractor." OFF)
endmacro(InitializeBuildOptions)